What I use
Hardware
My main workstation is a 2021 Macbook Pro with the M1 Pro chip. The hardware is fantastic in almost every way, but the software is a bit of a downgrade 1 from a solid Linux setup.
When working from my desk, I use a Microsoft Sculpt Ergonomic keyboard2, and a big additional monitor. Using a laptop stand to lift the laptop to eye level is a must.
Software
In my Mac setup, I heavily utilize yabai, skhd and karabiner-elements. With enough tinkering, it is possible to recreate most of the i3 tiling manager experience. 3 My setup is based on these dotfiles. For Linux desktops, I use Arch Linux (btw) with i3. 4
While I often work on a local machine, I definitely prefer using the laptop as a thin client to a remote server.
I was an early adopter of Cursor and an early adopter of Claude Code. As of March 2025, neither is clearly better than the other.
The tier list of Cursor features is: Cmd+I (Chat) >>
Cursor Copilot ~ Cmd+K in terminal >> Cmd+K in code. I
write a new .cursorrules
file every time a project
grows beyond 10 files or so.
Some indispensable VS Code / Cursor extensions are JSON Lines Viewer, LaTeX Workshop. I like ruff as a pre-commit hook, and if you use that, use the Ruff extension too.
Some features in my codebases are being written by Devin, and as of Jan 2025, I am slowly getting it to be useful. Key tricks I’ve learned: sample a prompt multiple times right away instead of repeating after it fails; read the plans it delivers (because this is the point that makes or breaks the run most often); and keep the sessions short.
For virtual environments, ditch any Conda-like software, and
just use uv run.
Seriously.
While we’re at basic Python tips: (0) use uv
; (1) a
simple Python tool that it is easy to forget about but is very
valuable when you need it is py-spy; (2)
spending 10 minutes learning
what asyncio actually is might be among the most valuable 10
minute intervals in your engineering career.
For navigating inside a terminal, fzf and z are great. You should set
unlimited history size. For running many experiments, I
launch a tmux session
with multiple panes from a script. When I am not inside the
Cursor terminal (where Cmd+K is good), I also like Simon
Willison’s suite of tools: llm, llm-cmd and files-to-prompt.
Python-based global tools such as these are always better
installed with uv tool install
instead of pip or
using a virtual environment.
For automating git commit messages, opencommit is a bit verbose, but it works. Looking for a better solution.
I paid for TypingMind, and there I chat to Claude and Gemini about all sorts of things. As of April 2025, it supports asking multiple models at once, which is kind of cool. I also use ChatGPT Pro (with the ergonomic Option+Space shortcut) quite often, on a bimodal distribution of queries: very quick questions where opening up a TypingMind window is overkill, and tasks where I want to use OpenAI Deep Research or a reasoning model.
My writing process combines various tools for different purposes. I often begin by using superwhisper to dictate initial drafts into TypingMind, then chat with Claude until I’m satisfied with the result. I generally spend a lot of time in Google Docs, though I write my newsletter in Obsidian to take advantage of its Smart Composer plugin. I’m considering migrating more of my daily writing (both structured and unstructured) to Obsidian eventually. For rare types of structured notes, I still rely on org-mode in Spacemacs.
I use Espanso for a bunch
of things, e.g. :daydate
-> current date in
dayofweek, Month DD, YYYY format,
:sonnet37 -> claude-3-7-sonnet-20250219
, and so
on. It works on all apps where you type text.
For keeping work todos, I use Asana. Recently I’ve subscribed to Setapp, mostly for Timing and Cleanshot X. I do not recommend Bartender anymore as of Oct 2024, and recommend paying $5 for Ice instead.
I endorse Anki, especially the mobile version.
I highly recommend setting up Google Alerts to track mentions of your name or pseudonym. Recently I’ve been using Beeminder to be more disciplined about the fraction of the time I spend on writing.
Web
I use Firefox with the following life-saving extensions: vimium, OneTab, uBlock Origin, Enhancer for Youtube, and Tab Notes. I am consistently impressed by how much value Tab Notes brings me in particular.
In Firefox (and perhaps other browsers), you can add bookmarks to LLMs and search engines like this:
- Name: ChatGPT
- URL: https://chatgpt.com/?q=%s
- Keyword: c
- Name: Claude AI
- URL: https://claude.ai/new?q=%s
- Keyword: cl
Some online tools I like: repo2txt, AoE clock. See also Simon Willison’s list.
Food and health
While in Switzerland, I’ve had good experiences with Saturo. In general, replacing snacks with meal replacements seems to have little downside, mostly because sweets, soft drinks, and other popular snacks have genuinely horrible nutritional profiles.
Most tasty sweets aren’t even cheap, and I’m genuinely confused why they seem so popular compared to meal replacements and protein bars.
Ready-to-drink meal replacements typically have a protein/kcal ratio of about 0.05g. If you’re trying to gain weight and are hitting your daily protein target from other sources, you can get away with consuming a large fraction of your calories from meal replacements. If you’re cutting or maintaining calories, unless you have a very low body weight, it’s not advisable to subsist only on meal replacements. The fact that liquid calories aren’t as satiating as solid ones will do you no favors either. For reference, an 80kg man trying to lose weight without losing muscle mass should aim for roughly 160g of protein and 2000kcal daily, for a 0.08g protein/kcal ratio.
Consuming only meal replacements can lead to deficiencies in micronutrients not covered in the primary nutrients (protein, carbs, fat, basic vitamins and minerals) that meal replacement makers focus on. This issue isn’t exclusive to meal replacements; many people don’t eat enough diverse foods to cover their micronutrient needs. I recommend near’s supplements review5 if you want a technological solution to this problem.
You can also try to consistently eat plenty of fruits, vegetables, nuts, seeds, and other nutrient-dense foods.
My main concern with Saturo is that, as of April 2025, their mineral content seems to be intended for someone with mineral deficiencies. For instance, even 1000kcal of Saturo provides 12mg of iron, which is 50% more than the recommended daily intake for an adult male. (Reproductive-age women need significantly more iron.) If you consume most of your calories from Saturo, you’re effectively getting supplementation of iron, potassium, magnesium, manganese, zinc, copper, and selenium, without much choice. For most of these minerals, being physically active helps offset this in your favor as you need more of these nutrients than if you were sedentary. It’s unclear what the long-term health effects of a diet consistently rich in iron, manganese, magnesium, and similar minerals might be; even 3000kcal of Saturo daily would still be below acute toxicity levels, but nutrition science is a mess.
Note: If you’re reading this, it’s statistically likely that you should take vitamin D. If you think this doesn’t apply to you because you do outdoor sports often, you should still apply sunscreen (if you’re male and dislike cosmetics, don’t be that guy! Skin damage from UV exposure isn’t manly, it’s just harmful), and you might also benefit from taking glucosamine sulfate.
Physical items
I wore glasses for work (I have a low prescription, so I can see okayish without them, but e.g. I couldn’t read the whiteboard in class) for a long time because I had a bad experience with contacts as a teenager. I tried contacts again recently and it turned out my original contacts were just shitty. In retrospect, of all the things you want to consider saving money on, contacts are clearly one of the worst choices. Get an optometrist to give you samples of a few different types, and get the ones that work for you, no matter if you spend $0.5 or $2 per day on them.
I’ve had mixed success with sleep masks for regular sleep (they are clearly positive on flights); will report some data once I do a proper test on whether they increase my sleep quality.
Travel accessories
The following travel accessories bring quite a lot of value:
- packing cubes (Go Travel is fine, one if backpack, two if suitcase);
- comfortable noise-cancelling headphones (Sony WH-1000XM4);
- a power bank small enough to fit in a pocket.
See also Vitalik’s backpack travel guide.
Pen and paper
I like the Pilot G2-07, black ink. Dots ~ plain > checkered > lined.
The slow burn of improvement
I have, from time to time, been hit with a sudden realization that there exist people that make me feel like I am walking while they are running. Sometimes I observe an insanely productive feedback loops, or someone delivering a huge amount of work in a matter of weeks. At that point, everything that I’ve accomplished recently, even if it was a lot, starts mattering less.
My natural response is to feel the sudden urge to overhaul my setup, and start working in a completely different way. I have tried adopting strict rules for work, suddenly forcing myself to do a lot of Anki in my spare time, plaster the office walls with printed out docs with best practices for research, etc. The thing is, this is completely ineffective.
What does work for me is frustratingly simple: change at least one thing every single week. In high dimensional spaces, local minima are rare. This is especially true given the rising tide of AI progress enabling improvements where there were none last time you tried.
These changes can look tiny. From my personal experience, at
the risk of this sounding outdated in a few years: It could be a
different way of using Cursor; a reshaped
llm_utils.py
file; commiting to take notes whenever
you read a paper; deciding to clean up and publish those notes;
it could be taking notes after every single research meeting so
the conversation doesn’t just go in one ear and out the other;
or it could be deciding to finish an actual commit with a
feature every single day. It could be keeping the top priority
for a project always at the top of the project doc; or it could
even be something like buying a standing desk.
The highest leverage improvements are about habits, not tools. But habits are hard. You can’t just decide to be a different person overnight. But you can decide to be a slightly different person this week.
Moving to a new city, or changing jobs, seems to enable making many improvements at once. This is related to personality basins.
Sometimes you slip up. You’ll abandon tools. You’ll break streaks. That is fine. What matters is to keep moving and try to get back on track on parts of what you are doing that are genuinely important.
One of the best sources of improvement is the people around you. When you see a coworker doing something smart, steal it. It’s much easier to adopt a habit when you can see it in action every day.
And one final thing: the meta-habit of continuous improvements itself is something that one can get used to.
They discontinued it. How could they? It used to come with a fantastic mouse, and worked with both MacOS and Linux out of the box. I will never get rid of mine now. (I did get rid of the numpad, though. It’s nice that it comes separate from the main keyboard so I can just throw it away.)↩︎
I didn’t succeed completely – for example, with multiple displays, it doesn’t seem possible to label workspaces non-consecutively. If you have any ideas on how to do this, please let me know!↩︎
Since dropping Windows a long time ago, I used Ubuntu, then Arch, then Manjaro for a long time, then switched back to Arch on a new laptop. Manjaro and Arch are very similar and somewhat better than the others. There is no bloat at all if you go with i3.↩︎
Here is an important quote: “When I was young I didn’t understand why ‘vegetables’ or such should be good for me: adults would tell me they had”vitamins and minerals” in them, but I could obviously both a) test myself for vitamin and mineral deficiencies and b) supplement them if I was deficient in them. It wasn’t until many, many years later that I learned how amazingly complex everything we eat is and how many biologically active ingredients are in dishes. Think of a dish with many vegetables, spices, roots, meat, etc, as basically having 20 different drugs in it, but with all of them in very small doses. Many of them are also very slightly psychoactive too! Just as you can get high on nutmeg and sweet potatoes inhibit α-glucosidase and are thus anti-diabetic like the drug acarbose and red yeast rice is literally the same as a statin medication and berberine found in plants like barberry is a mimetic of the anti-diabetic drug metformin, the foods we eat on a daily basis have an astoundingly large amount of downstream effects in the body which have nothing to do with the vitamins or minerals in them. The cases we tend to know about like marijuana or opium are not rare in that they have strong biological effects, but rather are only rare in the dose response curves that are common with consumption.”↩︎